
"""
特殊素数组

3、7、109和673是特别的一组素数。任取其中的两个并且以任意顺序连接起来，其结果仍然是个素数。
例如:：选择7和109，任意连接得到的7109和1097均为素数。这组素数的和是792，这是满足这个性质的一组四个素数的最小和。

若有一组包含五个素数，任取其中的两个并且以任意顺序连接起来，其结果仍是个素数，求这样一组素数的最小和。

"""

def is_prime(n):
    if n==1:
        return False
    elif n==2:
        return True
    else:
        for i in range(2,int(n**0.5)+1):
            if n%i==0:
                return False
        else:
            return True

prime=[[2]]
num=3
flag=True
while flag:
    if is_prime(num):
        prime.append([num])
        f=0
        for a in prime:
            if len(a)==4:
                print(a)
                flag=False
            for b in a:
                if not is_prime(int(str(b)+str(num))) or not is_prime(int(str(num)+str(b))):
                    break
            else:
                f=1
                a.append(num)
              
    num+=2
print(prime)



# # 判断素数
# def an_prime(number):
#     if number == 1 or number == 0:
#         return False
#     for i in range(2, int(number ** 0.5) + 1):
#         if number % i == 0 and number > i:
#             return False
#     return True

# # 判断组合是否为素数
# def Combine(listex):
#     for i in range(len(listex) - 1):
#         for j in range(i + 1, len(listex)):
#             if not an_prime(int(str(listex[i]) + str(listex[j]))) or not \
#                     an_prime(int(str(listex[j]) + str(listex[i]))):
#                 return False
#     return True

# # 得到nunm以内的素数集合
# def PrimeSet(nunm):
#     anset = []
#     fan = 3
#     while fan < nunm:
#         if an_prime(fan):
#             anset.append(fan)
#         fan += 1
#     return anset

# # 暴力搜索函数
# def Violence(num):
#     dd = PrimeSet(num)
#     for jj in range(len(dd)):
#         for ii in range(jj + 1, len(dd)):
#             if Combine([dd[ii], dd[jj]]):
#                 for gg in range(ii + 1, len(dd)):
#                     if Combine([dd[ii], dd[gg], dd[jj]]):
#                         for hh in range(gg + 1, len(dd)):
#                             if Combine([dd[ii], dd[hh], dd[gg], dd[jj]]):
#                                 for cc in range(hh + 1, len(dd)):
#                                     if Combine([dd[ii], dd[cc], dd[gg], dd[hh], dd[jj]]):
#                                         return [dd[ii], dd[jj], dd[gg], dd[hh], dd[cc]]


# primelist = Violence(10000)
# print(primelist)
# print(sum(primelist))
# 答案：满足条件的一组素数：[5197, 13, 5701, 6733, 8389]
# 和为：26033